﻿<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>InputBox</title>
<meta http-equiv="Content-Type" Content="text/html; charset=utf-8">
<link rel="stylesheet" type="text/css" href="../../styles/styles.css">
<script language="javascript" src='../links.js' type="text/javascript"></script>
</head>
<body>

<h1>InputBox</h1>
<div class=navbar>
<a href="../index.html">главная</a> |
<a href="index.html">сервисные функции</a> |
<a href="../basicapi/index.html">Basic API</a>
</div>

<div class=shortdescr>
Функция <code>InputBox</code> позволяет ввести одну строку текста.
</div>

<pre class=syntax>
intptr_t WINAPI InputBox(
  const GUID *PluginId,
  const GUID *Id,
  const wchar_t *Title,
  const wchar_t *SubTitle,
  const wchar_t *HistoryName,
  const wchar_t *SrcText,
  wchar_t *DestText,
  size_t DestSize,
  const wchar_t *HelpTopic,
  INPUTBOXFLAGS Flags
);
</pre>
<h3>Параметры</h3>
<div class=descr>
  <div class=dfn>PluginId</div>
    <div class=dfndescr>Указатель на GUID плагина (для вашего плагина, GUID должен быть таким же, что и в поле <code>GlobalInfo.Guid</code> функции <a href="../exported_functions/getglobalinfow.html">GetGlobalInfoW</a>).</div>
  <div class=dfn>Id</div>
    <div class=dfndescr>Указатель на GUID текущего сообщения. GUID должен быть уникальным.</div>
  <div class=dfn>Title</div>
    <div class=dfndescr>Заголовок окна ввода. Может быть равен <code>NULL</code> или <code>L""</code>.</div>
  <div class=dfn>SubTitle</div>
    <div class=dfndescr>Приглашение на ввод данных. Может быть равен <code>NULL</code> или <code>L""</code>.</div>
  <div class=dfn>HistoryName</div>
    <div class=dfndescr>Адрес строки для "истории". Установите в <code>NULL</code>, если "история" ввода не используется.</div>
  <div class=dfn>SrcText</div>
    <div class=dfndescr>Исходные данные для ввода и редактирования. Может быть равен <code>NULL</code> или <code>L""</code>.</div>
  <div class=dfn>DestText</div>
    <div class=dfndescr>"Приёмник" введённых данных. Может указать на ту же область памяти, что и <code>SrcText</code>.</div>
  <div class=dfn>DestSize</div>
    <div class=dfndescr>Размер "приёмника" в символах, с завершающим символом <code>'\0'</code>.</div>
  <div class=dfn>HelpTopic</div>
    <div class=dfndescr>Адрес строки с <a href="../language/helptopic.html">названием темы</a> помощи в формате "&lt;FullPath&gt;Topic", например:
    <pre class=code>L"&lt;D:\\FAR\\Plugins\\Foo\\&gt;FooInfo"</pre>
    <br>Установите в <code>NULL</code> если подсказка не используется.</div>
  <div class=dfn>Flags</div>
    <div class=dfndescr>Может быть комбинацией следующих значений (тип <a name="INPUTBOXFLAGS">INPUTBOXFLAGS</a>):
    <table class="cont">
    <tr class="cont"><th class="cont" width="40%">Константа</th><th class="cont" width="60%">Описание</th></tr>
    <tr class="cont"><td class="cont" width="40%"><a name="FIB_ENABLEEMPTY">FIB_ENABLEEMPTY</a></td>
    <td class="cont" width="60%">даже если строка ввода пуста функция вернёт значение <code>TRUE</code></td></tr>
    <tr class="cont"><td class="cont" width="40%"><a name="FIB_PASSWORD">FIB_PASSWORD</a></td>
    <td class="cont" width="60%">используется для ввода пароля - вводимый текст на экране отрисовывается символами <code>'*'</code></td></tr>
    <tr class="cont"><td class="cont" width="40%"><a name="FIB_EXPANDENV">FIB_EXPANDENV</a></td>
    <td class="cont" width="60%">после успешного ввода, в строке <code>DestText</code> идентификаторы переменных окружения заменяются на их значения, например, если пользователь ввёл '<code>%TEMP%</code>', то <code>DestText</code> будет содержать '<code>C:\TEMP</code>'</td></tr>
    <tr class="cont"><td class="cont" width="40%"><a name="FIB_NOUSELASTHISTORY">FIB_NOUSELASTHISTORY</a></td>
    <td class="cont" width="60%">не использовать предыдущее значение из истории, оставить строку ввода пустой; актуален, если параметр <code>HistoryName</code> не равен <code>NULL</code></td></tr>
    <tr class="cont"><td class="cont" width="40%"><a name="FIB_BUTTONS">FIB_BUTTONS</a></td>
    <td class="cont" width="60%">показать разделительную линию и кнопки [Ok] и [Cancel]. Диалог увеличится на 2 строки</td></tr>
    <tr class="cont"><td class="cont" width="40%"><a name="FIB_NOAMPERSAND">FIB_NOAMPERSAND</a></td>
    <td class="cont" width="60%">не показывать в приглашении ввода амперсанд, использовать его для определения горячей клавиши</td></tr>
    <tr class="cont"><td class="cont" width="40%"><a name="FIB_EDITPATH">FIB_EDITPATH</a></td>
    <td class="cont" width="60%">говорит, что строка ввода будет содержать имена реальных файловых объектов</td></tr>
    <tr class="cont"><td class="cont" width="40%"><a name="FIB_EDITPATHEXEC">FIB_EDITPATHEXEC</a></td>
    <td class="cont" width="60%">ограничивать автодополнение в строке ввода только именами исполнимых файлов (%PATHEXT%), которые находятся в каталогах, перечисленных в %PATH%</td></tr>
    <tr class="cont"><td class="cont" width="40%"><a name="FIB_NONE">FIB_NONE</a></td>
    <td class="cont" width="60%">нулевой флаг</td></tr>
    </table>
    </div>
</div>

<h3>Возвращаемое значение</h3>
<div class=descr>
Функция возвращает <code>TRUE</code> в случае успешного ввода строки и <code>FALSE</code>, если пользователь прервал ввод.
</div>

<h3>Замечания</h3>
<div class=descr>
Far Manager использует данную функцию, когда пользователь пытается создать папку:<br>
<img src="../../images/inputbox.gif">
</div>

<h3>Пример</h3>
<div class=descr>
</div>

<div class=see>Смотрите также:</div>
<div class=seecont>
<a href="../service_functions/dialoginit.html">DialogInit</a>
</div>

</body>
</html>